package com.lantosec.hmrp.modules.eval.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;
import com.lantosec.hmrp.modules.eval.entity.EvalPlanTarget;
import com.lantosec.hmrp.modules.eval.entity.EvalTask;
import com.lantosec.hmrp.modules.eval.vo.EvalPlanVO;
import com.lantosec.hmrp.modules.eval.vo.EvalTypeVO;

import java.util.List;

/**
 * <p>
 * 考评任务 服务类
 * </p>
 *
 * @author AutoCode
 * @since 2020-03-30
 */
public interface IEvalTaskService extends IService<EvalTask> {

    /**
     * 查询未完成的考评任务
     * @param startDate
     * @param endDate
     * @param evalPlanName
     * @param evalPlanCycle
     * @param evalPlanType
     * @param evalMode
     * @param state
     * @param userId
     * @param deptId
     */
    List<EvalPlanVO> getNotFinishedTask(PageVO<EvalPlanVO> page, String startDate,
                                        String endDate, String evalPlanName, Integer evalPlanCycle,
                                        Integer evalPlanType, Integer evalMode, Integer state, Integer permissionsType,
                                        String userId, String deptId);

    /**
     * 查询已完成的考评任务
     * @param startDate
     * @param endDate
     * @param executorUser
     * @param evalPlanCycle
     * @param evalPlanType
     * @param evalMode
     * @return
     */
    List<EvalPlanVO> getFinishedTask(PageVO<EvalPlanVO> page, String startDate, String endDate,
                                     String executorUser, Integer evalPlanCycle, Integer evalPlanType,
                                     Integer evalMode, Integer permissionsType,String userId,String deptId);

    /**
     * 开始考评
     * @param evalTaskId
     * @return
     */
    List<EvalTypeVO> get(Integer evalTaskId,Integer planTargetId);

    /**
     * 查询已完成考评任务详情
     * @param evalPlanId
     * @return
     */
    List<EvalPlanTarget> getFinishedTaskParm(Integer evalPlanId);

    /**
     * 开始考评任务提交
     * @param evalDetailedId
     */
    void updateEvalTask(Integer evalDetailedId,Integer state);

    /**
     * 开始考评
     * @param evalPlanId
     * @return
     */
    List<EvalPlanTarget> startEval(Integer evalPlanId);

    /**
     * 开始考评详情
     * @param evalTaskId
     * @param evalDetailedId
     * @return
     */
    List<EvalTypeVO> getParm(Integer evalTaskId, Integer evalDetailedId);
}
